package com.tbs.web.security.authentication.model;

import com.tbs.web.security.token.ITokenModel;
import org.springframework.security.core.Authentication;

/**
 * token认证接入接口
 *
 * @author tongj
 */
public interface ITokenAuthentication extends Authentication {
    /**
     * 获取token
     *
     * @return
     */
    ITokenModel getTokenModel();

    /**
     * 设置token
     *
     * @param model
     */
    void setTokenModel(ITokenModel model);

    /**
     * 是否有token
     *
     * @return
     */
    default boolean hasToken() {
        return getTokenModel() != null;
    }

    /**
     * 获取异常信息
     *
     * @return
     */
    String getErrorMessage();

    /**
     * 设置异常信息
     *
     * @param errorMessage
     */
    void setErrorMessage(String errorMessage);

}
